package com.ruoyi.mall.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单列表对象 t_order
 *
 * @author ruoyi
 * @date 2025-08-13
 */
public class Order extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 订单ID
     */
    private Long id;

    /**
     * 下单用户
     */
    @Excel(name = "下单用户")
    private Long userId;

    private String userPhone;
    private String userName;

    /**
     * 订单编号
     */
    @Excel(name = "订单编号")
    private String orderNo;

    /**
     * 下单商品
     */
    @Excel(name = "下单商品")
    private Long goodId;

    private String goodIdName;
    private String goodIdImg;

    /**
     * skuID
     */
    @Excel(name = "skuID")
    private Long skuId;

    /**
     * 商品规格
     */
    @Excel(name = "商品规格")
    private String guige;

    /**
     * 购买数量
     */
    @Excel(name = "购买数量")
    private Long shopCount;

    /**
     * 订单总金额
     */
    @Excel(name = "订单总金额")
    private BigDecimal goodZong;

    /**
     * 实付金额
     */
    @Excel(name = "实付金额")
    private BigDecimal shopPrice;

    /**
     * 邮费
     */
    @Excel(name = "邮费")
    private BigDecimal shippingFee;

    /**
     * 收件人
     */
    @Excel(name = "收件人")
    private String adrName;

    /**
     * 收件人电话
     */
    @Excel(name = "收件人电话")
    private String adrPhone;

    /**
     * 收货地
     */
    @Excel(name = "收货地")
    private String adrQuyu;

    /**
     * 详细地址
     */
    @Excel(name = "详细地址")
    private String adrAddress;

    /**
     * 支付方式
     */
    @Excel(name = "支付方式")
    private Long paymentFang;

    /**
     * 支付时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentTime;

    /**
     * 发货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date fahuoTime;

    /**
     * 收货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "收货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date shouhuoTime;

    /**
     * 订单状态
     */
    @Excel(name = "订单状态")
    private Long orderState;

    /**
     * 退款前状态
     */
    @Excel(name = "退款前状态")
    private Long tkqzt;

    /**
     * 申请退款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "申请退款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date sqtkTime;

    /**
     * 订单取消时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "订单取消时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date quxiaoTime;

    /**
     * 退款状态
     */
    @Excel(name = "退款状态")
    private Long tkState;

    /**
     * 快递方式
     */
    @Excel(name = "快递方式")
    private String express;

    /**
     * 快递单号
     */
    @Excel(name = "快递单号")
    private String courierNumber;

    /**
     * 退款原因
     */
    @Excel(name = "退款原因")
    private String tkyy;

    /**
     * 退款描述
     */
    @Excel(name = "退款描述")
    private String pcms;

    /**
     * 售后类型
     */
    @Excel(name = "售后类型")
    private Long shlx;

    /**
     * 超时时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "超时时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expireTime;

    /**
     * 是否删除
     */
    @Excel(name = "是否删除")
    private Integer isDeleted;

    /**
     * 订单来源
     */
    @Excel(name = "订单来源")
    private Long source;

    /**
     * 是否批量下单
     */
    @Excel(name = "是否批量下单")
    private Integer isBatch;

    private String sendAddress;

    public String getSendAddress() {
        return sendAddress;
    }

    public void setSendAddress(String sendAddress) {
        this.sendAddress = sendAddress;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setGoodId(Long goodId) {
        this.goodId = goodId;
    }

    public Long getGoodId() {
        return goodId;
    }

    public void setSkuId(Long skuId) {
        this.skuId = skuId;
    }

    public Long getSkuId() {
        return skuId;
    }

    public void setGuige(String guige) {
        this.guige = guige;
    }

    public String getGuige() {
        return guige;
    }

    public void setShopCount(Long shopCount) {
        this.shopCount = shopCount;
    }

    public Long getShopCount() {
        return shopCount;
    }

    public void setGoodZong(BigDecimal goodZong) {
        this.goodZong = goodZong;
    }

    public BigDecimal getGoodZong() {
        return goodZong;
    }

    public void setShopPrice(BigDecimal shopPrice) {
        this.shopPrice = shopPrice;
    }

    public BigDecimal getShopPrice() {
        return shopPrice;
    }

    public void setShippingFee(BigDecimal shippingFee) {
        this.shippingFee = shippingFee;
    }

    public BigDecimal getShippingFee() {
        return shippingFee;
    }

    public void setAdrName(String adrName) {
        this.adrName = adrName;
    }

    public String getAdrName() {
        return adrName;
    }

    public void setAdrPhone(String adrPhone) {
        this.adrPhone = adrPhone;
    }

    public String getAdrPhone() {
        return adrPhone;
    }

    public void setAdrQuyu(String adrQuyu) {
        this.adrQuyu = adrQuyu;
    }

    public String getAdrQuyu() {
        return adrQuyu;
    }

    public void setAdrAddress(String adrAddress) {
        this.adrAddress = adrAddress;
    }

    public String getAdrAddress() {
        return adrAddress;
    }

    public void setPaymentFang(Long paymentFang) {
        this.paymentFang = paymentFang;
    }

    public Long getPaymentFang() {
        return paymentFang;
    }

    public void setPaymentTime(Date paymentTime) {
        this.paymentTime = paymentTime;
    }

    public Date getPaymentTime() {
        return paymentTime;
    }

    public void setFahuoTime(Date fahuoTime) {
        this.fahuoTime = fahuoTime;
    }

    public Date getFahuoTime() {
        return fahuoTime;
    }

    public void setShouhuoTime(Date shouhuoTime) {
        this.shouhuoTime = shouhuoTime;
    }

    public Date getShouhuoTime() {
        return shouhuoTime;
    }

    public void setOrderState(Long orderState) {
        this.orderState = orderState;
    }

    public Long getOrderState() {
        return orderState;
    }

    public void setTkqzt(Long tkqzt) {
        this.tkqzt = tkqzt;
    }

    public Long getTkqzt() {
        return tkqzt;
    }

    public void setSqtkTime(Date sqtkTime) {
        this.sqtkTime = sqtkTime;
    }

    public Date getSqtkTime() {
        return sqtkTime;
    }

    public void setQuxiaoTime(Date quxiaoTime) {
        this.quxiaoTime = quxiaoTime;
    }

    public Date getQuxiaoTime() {
        return quxiaoTime;
    }

    public void setTkState(Long tkState) {
        this.tkState = tkState;
    }

    public Long getTkState() {
        return tkState;
    }

    public void setExpress(String express) {
        this.express = express;
    }

    public String getExpress() {
        return express;
    }

    public void setCourierNumber(String courierNumber) {
        this.courierNumber = courierNumber;
    }

    public String getCourierNumber() {
        return courierNumber;
    }

    public void setTkyy(String tkyy) {
        this.tkyy = tkyy;
    }

    public String getTkyy() {
        return tkyy;
    }

    public void setPcms(String pcms) {
        this.pcms = pcms;
    }

    public String getPcms() {
        return pcms;
    }

    public void setShlx(Long shlx) {
        this.shlx = shlx;
    }

    public Long getShlx() {
        return shlx;
    }

    public void setExpireTime(Date expireTime) {
        this.expireTime = expireTime;
    }

    public Date getExpireTime() {
        return expireTime;
    }

    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }

    public Integer getIsDeleted() {
        return isDeleted;
    }

    public void setSource(Long source) {
        this.source = source;
    }

    public Long getSource() {
        return source;
    }

    public void setIsBatch(Integer isBatch) {
        this.isBatch = isBatch;
    }

    public Integer getIsBatch() {
        return isBatch;
    }

    public String getUserPhone() {
        return userPhone;
    }

    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getGoodIdName() {
        return goodIdName;
    }

    public void setGoodIdName(String goodIdName) {
        this.goodIdName = goodIdName;
    }

    public String getGoodIdImg() {
        return goodIdImg;
    }

    public void setGoodIdImg(String goodIdImg) {
        this.goodIdImg = goodIdImg;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("userId", getUserId())
                .append("orderNo", getOrderNo())
                .append("goodId", getGoodId())
                .append("skuId", getSkuId())
                .append("guige", getGuige())
                .append("shopCount", getShopCount())
                .append("goodZong", getGoodZong())
                .append("shopPrice", getShopPrice())
                .append("shippingFee", getShippingFee())
                .append("adrName", getAdrName())
                .append("adrPhone", getAdrPhone())
                .append("adrQuyu", getAdrQuyu())
                .append("adrAddress", getAdrAddress())
                .append("paymentFang", getPaymentFang())
                .append("paymentTime", getPaymentTime())
                .append("fahuoTime", getFahuoTime())
                .append("shouhuoTime", getShouhuoTime())
                .append("orderState", getOrderState())
                .append("tkqzt", getTkqzt())
                .append("sqtkTime", getSqtkTime())
                .append("quxiaoTime", getQuxiaoTime())
                .append("tkState", getTkState())
                .append("express", getExpress())
                .append("courierNumber", getCourierNumber())
                .append("tkyy", getTkyy())
                .append("pcms", getPcms())
                .append("shlx", getShlx())
                .append("createTime", getCreateTime())
                .append("expireTime", getExpireTime())
                .append("isDeleted", getIsDeleted())
                .append("source", getSource())
                .append("isBatch", getIsBatch())
                .toString();
    }
}
